home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d970.lha / ADM / ARexx / ADMGeburtstag.adm next >
Text File  |  1993-10-18  |  3KB  |  94 lines

  1.  
  2. /* $VER: ADMGeburtstag.rexx 1.1 (18.10.93)
  3.  
  4.    Sucht alle Einträge, bei denen in maximal "Tage" Tagen Geburtstag ist,
  5.    und zeigt diese per Requester an.
  6.    Ideal geeignet für den Tooltype/Shellparameter STARTUP.
  7.  
  8.  
  9.    Autoren:
  10.  
  11.       von André Schenk
  12.       andre@melior.stgt.sub.org
  13.       2:2407/106.42@fidonet
  14.  
  15.       erweitert von
  16.       Jan Geißler
  17.       jan@digit.stgt.sub.org
  18.       2:2407/106.5@fidonet
  19.  
  20.  
  21.    History:
  22.  
  23.       V1.0 14.10.93  [as]  - Erste Version
  24.       V1.1 18.10.93  [jan] - Ext. Programm "Request" durch RexxReqTools.lib ersetzt.
  25.                            - DisplayBeep am Ende der Suche vermieden.
  26.                            - Im Requester wird "heute, morgen, übermorgen" anstatt
  27.                              des Datums angezeigt.
  28.                            - Errechnet nun, wie alt derjenige wird.
  29.  
  30. */
  31.  
  32. Tage        = 7    /* 7 Tage vor Geburtstag warnen! */
  33.  
  34. OPTIONS RESULTS
  35.  
  36. CALL ADDLIB("rexxreqtools.library", 0, -30, 0)
  37. NL = '0a'x
  38.  
  39. ADDRINMEM
  40. Max = RESULT
  41.  
  42. ACTIVATEFIRST
  43.  
  44. Zeit  = DATE("Internal")                /* aktuelles Datum */
  45. Datum = DATE("Days", Zeit, "Internal")  /* vergangene Tage dieses Jahres */
  46. Jahr  = SUBSTR(DATE("Sorted", Zeit, "Internal"), 1, 4)
  47.  
  48. DO Index = 1 TO Max
  49.   GETADDRESS Datensatz
  50.  
  51.   IF Datensatz.BIRTHDAY ~= "" THEN DO
  52.     Geburtsdatum = Datensatz.BIRTHDAY
  53.     Geburtsdatum = TRANSLATE(Geburtsdatum, "/", ".")
  54.     Geburtsdatum = TRANSLATE(Geburtsdatum, "/", "-")
  55.     Tag = SUBSTR(Geburtsdatum, 1, POS("/", Geburtsdatum) - 1)
  56.     IF LENGTH(Tag) = 1 THEN Tag = INSERT("0", Tag)
  57.     Monat = DELSTR(Geburtsdatum, POS("/", Geburtsdatum, 4))
  58.     Monat = SUBSTR(Monat, POS("/", Geburtsdatum) + 1)
  59.     GebJahr = SUBSTR(Geburtsdatum, POS("/", Geburtsdatum, 4))
  60.     IF LENGTH(GebJahr) > 2 THEN GebJahr = DELSTR(GebJahr,1,LENGTH(GebJahr)-2)
  61.     GebJahr= INSERT("19",GebJahr)
  62.  
  63.     Alter = Jahr - GebJahr
  64.     IF LENGTH(Monat) = 1 THEN Monat = INSERT("0", Monat)
  65.     Geburtsdatum = Jahr || Monat || Tag
  66.     Geburtsdatum = DATE("Days", Geburtsdatum, "Sorted")
  67.  
  68.     diff = Geburtsdatum - Datum
  69.  
  70.     IF diff >= 0 & diff <= Tage THEN DO
  71.  
  72.        SELECT
  73.          WHEN Datensatz.SALUTATION = "Herrn" THEN Anrede = "seinen"
  74.          WHEN Datensatz.SALUTATION = "Frau"  THEN Anrede = "ihren"
  75.          OTHERWISE Anrede = "den"
  76.        END
  77.  
  78.        SELECT
  79.          WHEN diff = 0 THEN Text = "HEUTE"
  80.          WHEN diff = 1 THEN Text = "morgen"
  81.          WHEN diff = 2 THEN Text = "übermorgen"
  82.          OTHERWISE Text = "am" Tag || "." || Monat || "."
  83.        END
  84.  
  85.        Text = Datensatz.FIRSTNAME || " " || Datensatz.LASTNAME || " hat" Text || NL || Anrede Alter || ". Geburtstag!"
  86.  
  87.        ans = RTEZREQUEST(Text,"_OK","ADMGeburtstag.rexx",,"rtez_defaultresponse=1")
  88.  
  89.        /* ADDRESS COMMAND 'Run <NIL: >NIL: Request 'Text' TITLE = "ADMGeburtstag.rexx"' */
  90.     END
  91.   END
  92.   IF Index ~= Max THEN ACTIVATENEXT
  93. END
  94.